/*
 * New BSD License
 * 
 * Copyright (c) 2008, Dan Crawford, Philip Nichols, Jacob Siegel, Tim Stefanski, Justin Williamson All rights reserved.
 * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
 * in the documentation and/or other materials provided with the distribution.
 * Neither the name of the Artemis Group nor the names of its contributors may be used to endorse or promote products derived from this software
 * without specific prior written permission.
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
 * OF SUCH DAMAGE. 
 * 
 * Project Artemis
 */


package ALDITS;

import java.awt.Graphics;
import java.awt.Color;
/*
 * Class Mountain generates object for mountain in ALDIS
 * Object holds (x,y) location and radius size.
 */
public class Mountain extends MapObject{

	int radius;
	public Mountain (int a, int b, int rad)
	{
		this.x = a;
		this.y = b;
		this.radius = rad;
	}
	public void draw(Graphics g)
	{
		g.drawOval(x - radius, y - radius, radius*2, radius*2);
		g.drawString("M", x - 3, y + 4);	
	}
	public int [] getLocation()
	{
		int [] loc = {x, y};
		return loc;
	}
	public int getRadius ()
	{
		return radius;
	}
	//Tests for collision where plane is one point
	//Are we doing one collision per object?
	/*
	 * Takes plane location, we might want to change this to an int []
	 * for consistency.  Thats a matter of preference.  Or Point
	 */
	public boolean collision(int xer, int yer) //$ALDITS007
	{
		int [] loc = {x, y};
		int [] plane = {xer, yer};
		double dist = Map.distanceFormula(loc, plane);
		if (dist > radius + 10)
			return false;
		return true;
	}
	@Override
	public String toStateMsg() {
		// TODO Auto-generated method stub
		return "mt"+"~"+x+"~"+y+"~"+radius;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return null;
	}
}
